[INFO] cloning repository https://github.com/apirrone/microduck_runtime
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/apirrone/microduck_runtime" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fapirrone%2Fmicroduck_runtime", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fapirrone%2Fmicroduck_runtime'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2b9abb0ab8a0222c1dd5cd51a5ca4c40d54544c6
[INFO] checking apirrone/microduck_runtime against master#c290daa1e5274a52e54a0f49e31bd70192abc606 for pr-133502-23
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fapirrone%2Fmicroduck_runtime" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/apirrone/microduck_runtime
[INFO] finished tweaking git repo https://github.com/apirrone/microduck_runtime
[INFO] tweaked toml for git repo https://github.com/apirrone/microduck_runtime written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/apirrone/microduck_runtime on toolchain c290daa1e5274a52e54a0f49e31bd70192abc606
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/apirrone/microduck_runtime already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/pollen-robotics/bmi088-rs`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/pollen-robotics/lsm6ds3tr-rs`
[INFO] [stderr]     Updating git repository `https://github.com/apirrone/microduck_kinematics_rs`
[INFO] [stderr]     Updating git repository `https://github.com/apirrone/microduck_maploc_rs`
[INFO] [stderr]     Updating git repository `https://github.com/apirrone/microduck_pet_detect`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serialport v4.9.0
[INFO] [stderr]   Downloaded iter-read v1.1.0
[INFO] [stderr]   Downloaded io-kit-sys v0.4.1
[INFO] [stderr]   Downloaded unescaper v0.1.8
[INFO] [stderr]   Downloaded humantime v2.3.0
[INFO] [stderr]   Downloaded ort-sys v2.0.0-rc.11
[INFO] [stderr]   Downloaded rustypot v1.4.2
[INFO] [stderr]   Downloaded ahrs v0.8.0
[INFO] [stderr]   Downloaded sysfs_gpio v0.6.2
[INFO] [stderr]   Downloaded spidev v0.6.1
[INFO] [stderr]   Downloaded i2cdev v0.6.2
[INFO] [stderr]   Downloaded ort v2.0.0-rc.11
[INFO] [stderr]   Downloaded linux-embedded-hal v0.4.1
[INFO] [stderr]   Downloaded gpio-cdev v0.6.0
[INFO] [stderr]   Downloaded jpeg-encoder v0.6.1
[INFO] [stderr]   Downloaded mint v0.5.9
[INFO] [stderr]   Downloaded gilrs-core v0.5.15
[INFO] [stderr]   Downloaded gilrs v0.10.10
[INFO] [stderr]   Downloaded serde-pickle v1.2.0
[INFO] [stderr]   Downloaded rustfft v6.4.1
[INFO] [stderr]   Downloaded nix v0.23.2
[INFO] [stderr]   Downloaded nalgebra v0.33.3
[INFO] [stderr]   Downloaded nalgebra v0.34.2
[INFO] [stderr]   Downloaded nix v0.27.1
[INFO] [stderr]   Downloaded bno055 v0.4.0
[INFO] [stderr]   Downloaded nix v0.31.3
[INFO] [stderr]   Downloaded glam v0.31.1
[INFO] [stderr]   Downloaded web-sys v0.3.98
[INFO] [stderr]   Downloaded glam v0.32.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4
[INFO] running `Command { std: "docker" "start" "6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking embedded-hal v1.0.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling ort-sys v2.0.0-rc.11
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]     Checking libloading v0.9.0
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking nb v1.1.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking embedded-hal-nb v1.0.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking mint v0.5.9
[INFO] [stderr]    Compiling microduck_runtime v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking iter-read v1.1.0
[INFO] [stderr]     Checking roxmltree v0.20.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking jpeg-encoder v0.6.1
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking nix v0.23.2
[INFO] [stderr]     Checking libudev v0.3.0
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking gpio-cdev v0.6.0
[INFO] [stderr]     Checking gilrs-core v0.5.15
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling toml_edit v0.25.11+spec-1.1.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking ctrlc v3.5.2
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking simba v0.9.1
[INFO] [stderr]     Checking ndarray v0.17.2
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking spidev v0.6.1
[INFO] [stderr]     Checking i2cdev v0.6.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling num_enum_derive v0.7.6
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking sysfs_gpio v0.6.2
[INFO] [stderr]     Checking bno055 v0.4.0
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking unescaper v0.1.8
[INFO] [stderr]     Checking num_enum v0.7.6
[INFO] [stderr]     Checking serialport v4.9.0
[INFO] [stderr]     Checking linux-embedded-hal v0.4.1
[INFO] [stderr]     Checking nalgebra v0.34.2
[INFO] [stderr]     Checking nalgebra v0.33.3
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking rustypot v1.4.2
[INFO] [stderr]     Checking ort v2.0.0-rc.11
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking serde-pickle v1.2.0
[INFO] [stderr]     Checking microduck_maploc v0.1.0 (https://github.com/apirrone/microduck_maploc_rs?branch=main#27fe83df)
[INFO] [stderr]     Checking microduck_pet_detect v0.1.0 (https://github.com/apirrone/microduck_pet_detect?branch=main#8adc5a44)
[INFO] [stderr]     Checking ahrs v0.8.0
[INFO] [stderr]     Checking lsm6ds3tr v0.1.0 (https://github.com/pollen-robotics/lsm6ds3tr-rs#444c2dd2)
[INFO] [stderr]     Checking bmi088 v0.1.0 (https://github.com/pollen-robotics/bmi088-rs#efddf202)
[INFO] [stderr]     Checking microduck_kinematics v0.1.0 (https://github.com/apirrone/microduck_kinematics_rs?branch=main#2c4aff44)
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/motor.rs:343:24
[INFO] [stdout]     |
[INFO] [stdout] 343 |             .filter(|&(i, id)| self.mouth_present || id != MOUTH_MOTOR_ID)
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/motor.rs:343:24
[INFO] [stdout]     |
[INFO] [stdout] 343 |             .filter(|&(i, id)| self.mouth_present || id != MOUTH_MOTOR_ID)
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     Axis::LeftStickX => self.state.left_stick_x = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 341 |                     Axis::LeftStickY => self.state.left_stick_y = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 342 |                     Axis::RightStickX => self.state.right_stick_x = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] 343 |                     Axis::RightStickY => self.state.right_stick_y = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quat_rotate_vec` is never used
[INFO] [stdout]   --> src/imu.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn quat_rotate_vec(quat: [f64; 4], vec: [f64; 3]) -> [f64; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     Axis::LeftStickX => self.state.left_stick_x = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 341 |                     Axis::LeftStickY => self.state.left_stick_y = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 342 |                     Axis::RightStickX => self.state.right_stick_x = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] 343 |                     Axis::RightStickY => self.state.right_stick_y = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quat_rotate_vec` is never used
[INFO] [stdout]   --> src/imu.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn quat_rotate_vec(quat: [f64; 4], vec: [f64; 3]) -> [f64; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/bin/test_i2c_raw.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{File, OpenOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/bin/test_i2c_raw.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{File, OpenOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_cmd` is never read
[INFO] [stdout]    --> src/bin/wheel_sysid.rs:98:27
[INFO] [stdout]     |
[INFO] [stdout]  98 |     let mut current_cmd = 0.0f64;
[INFO] [stdout]     |                           ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 118 |         current_cmd = target;
[INFO] [stdout]     |         -------------------- `current_cmd` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_cmd` is never read
[INFO] [stdout]    --> src/bin/wheel_sysid.rs:98:27
[INFO] [stdout]     |
[INFO] [stdout]  98 |     let mut current_cmd = 0.0f64;
[INFO] [stdout]     |                           ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 118 |         current_cmd = target;
[INFO] [stdout]     |         -------------------- `current_cmd` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/main.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::io::{Read as IoRead, Write as IoWrite};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/motor.rs:343:24
[INFO] [stdout]     |
[INFO] [stdout] 343 |             .filter(|&(i, id)| self.mouth_present || id != MOUTH_MOTOR_ID)
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/main.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::io::{Read as IoRead, Write as IoWrite};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     Axis::LeftStickX => self.state.left_stick_x = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 341 |                     Axis::LeftStickY => self.state.left_stick_y = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 342 |                     Axis::RightStickX => self.state.right_stick_x = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] 343 |                     Axis::RightStickY => self.state.right_stick_y = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/motor.rs:343:24
[INFO] [stdout]     |
[INFO] [stdout] 343 |             .filter(|&(i, id)| self.mouth_present || id != MOUTH_MOTOR_ID)
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/controller.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     Axis::LeftStickX => self.state.left_stick_x = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 341 |                     Axis::LeftStickY => self.state.left_stick_y = value,
[INFO] [stdout]     |                     ---------------- matches some of the same values
[INFO] [stdout] 342 |                     Axis::RightStickX => self.state.right_stick_x = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] 343 |                     Axis::RightStickY => self.state.right_stick_y = value,
[INFO] [stdout]     |                     ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 359 |                     _ => {}
[INFO] [stdout]     |                     ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_report_iteration` is assigned to, but never used
[INFO] [stdout]     --> src/main.rs:3689:13
[INFO] [stdout]      |
[INFO] [stdout] 3689 |         let mut last_report_iteration: u64 = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_last_report_iteration` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_report_iteration` is never read
[INFO] [stdout]     --> src/main.rs:3840:17
[INFO] [stdout]      |
[INFO] [stdout] 3840 |                 last_report_iteration = iteration;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_i2c_dev` is never used
[INFO] [stdout]   --> src/imu.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn env_i2c_dev() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quat_rotate_vec` is never used
[INFO] [stdout]   --> src/imu.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn quat_rotate_vec(quat: [f64; 4], vec: [f64; 3]) -> [f64; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_default_with_mode`, `new_default`, `get_calibration_status`, `save_calibration`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]    --> src/imu.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl ImuController {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn new_default_with_mode(use_projected_gravity: bool) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn get_calibration_status(&mut self) -> Result<(u8, u8, u8, u8)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn save_calibration(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `DEFAULT_ADDRESS`, `new_default`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]    --> src/imu.rs:763:15
[INFO] [stdout]     |
[INFO] [stdout] 762 | impl Bno08xController {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 763 |     pub const DEFAULT_ADDRESS: u8 = 0x4A;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 766 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 805 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 811 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_default`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]    --> src/imu.rs:878:12
[INFO] [stdout]     |
[INFO] [stdout] 869 | impl Bmi088Controller {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 878 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 912 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 917 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_default`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:999:12
[INFO] [stdout]      |
[INFO] [stdout]  986 | impl Lsm6ds3trController {
[INFO] [stdout]      | ------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  999 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1033 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1038 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMU_DXL_DEFAULT_ID` is never used
[INFO] [stdout]     --> src/imu.rs:1092:11
[INFO] [stdout]      |
[INFO] [stdout] 1092 | pub const IMU_DXL_DEFAULT_ID: u8 = 200;
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMU_DXL_DEFAULT_BAUD` is never used
[INFO] [stdout]     --> src/imu.rs:1093:11
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub const IMU_DXL_DEFAULT_BAUD: u32 = 1_000_000;
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_gravity_offset` and `raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:1235:12
[INFO] [stdout]      |
[INFO] [stdout] 1140 | impl DxlImuFusion {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1235 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1240 |     pub fn raw_accelerometer(&self, raw: &[u8; 12]) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default_remap`, `new`, `new_with_remap`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:1357:12
[INFO] [stdout]      |
[INFO] [stdout] 1356 | impl Lsm6ds3trDxlController {
[INFO] [stdout]      | --------------------------- associated items in this implementation
[INFO] [stdout] 1357 |     pub fn default_remap() -> lsm6ds3tr::AxisRemap {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1362 |     pub fn new(port: &str, baud: u32, id: u8) -> Result<Self> {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1366 |     pub fn new_with_remap(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1416 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1421 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Lsm6ds3trDxl` is never constructed
[INFO] [stdout]     --> src/imu.rs:1435:5
[INFO] [stdout]      |
[INFO] [stdout] 1430 | pub enum AnyImuController {
[INFO] [stdout]      |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 1435 |     Lsm6ds3trDxl(Lsm6ds3trDxlController),
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_gravity_offset` and `read_raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:1459:12
[INFO] [stdout]      |
[INFO] [stdout] 1438 | impl AnyImuController {
[INFO] [stdout]      | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1459 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1471 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_known` and `estimate` are never used
[INFO] [stdout]    --> src/maploc.rs:280:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl Maploc {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn reset_known(&mut self, x: f32, y: f32, yaw: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 777 |     pub fn estimate(&self) -> (f32, f32, f32) { self.tracked }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `join` is never read
[INFO] [stdout]   --> src/imu_worker.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ImuHandle {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 28 |     shared: Arc<Shared>,
[INFO] [stdout] 29 |     join:   Option<JoinHandle<()>>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shutdown` is never used
[INFO] [stdout]   --> src/imu_worker.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl ImuHandle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn shutdown(mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MIN_ANGLE` is never used
[INFO] [stdout]   --> src/motor.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const MOUTH_MIN_ANGLE: f64 = -10.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MAX_ANGLE` is never used
[INFO] [stdout]   --> src/motor.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const MOUTH_MAX_ANGLE: f64 =  70.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MIN_ANGLE_V1_5` is never used
[INFO] [stdout]   --> src/motor.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const MOUTH_MIN_ANGLE_V1_5: f64 = -0.5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MAX_ANGLE_V1_5` is never used
[INFO] [stdout]   --> src/motor.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const MOUTH_MAX_ANGLE_V1_5: f64 = -1.4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MIN_ANGLE_V1_6` is never used
[INFO] [stdout]   --> src/motor.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const MOUTH_MIN_ANGLE_V1_6: f64 = -5.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MAX_ANGLE_V1_6` is never used
[INFO] [stdout]   --> src/motor.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const MOUTH_MAX_ANGLE_V1_6: f64 = 30.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V1_5_DEFAULT_POSITION` is never used
[INFO] [stdout]    --> src/motor.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub const V1_5_DEFAULT_POSITION: [f64; NUM_MOTORS] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRE_ALPHA_DEFAULT_POSITION` is never used
[INFO] [stdout]    --> src/motor.rs:149:11
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub const PRE_ALPHA_DEFAULT_POSITION: [f64; NUM_MOTORS] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `last_imu_raw`, `poll_imu`, `interpolate_to_default`, and `reboot_all` are never used
[INFO] [stdout]    --> src/motor.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 239 | impl MotorController {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn last_imu_raw(&self) -> [u8; 12] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn poll_imu(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 597 |     pub fn interpolate_to_default(&mut self, duration: Duration) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 718 |     pub fn reboot_all(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size` and `as_mut_slice` are never used
[INFO] [stdout]    --> src/observation.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl Observation {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn as_mut_slice(&mut self) -> &mut [f32] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `roulade_refs`, `infer_roulade`, and `has_fold` are never used
[INFO] [stdout]    --> src/policy.rs:230:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl Policy {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn roulade_refs(&self) -> &RoulaideRefs { &self.roulade_refs }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn infer_roulade(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn has_fold(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTONS` is never used
[INFO] [stdout]   --> src/controller.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const BUTTONS: &[(&str, &str)] = &[
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AXES` is never used
[INFO] [stdout]   --> src/controller.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const AXES: &[(&str, &str)] = &[
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]    --> src/controller.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl ControllerMapping {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_connected` is never used
[INFO] [stdout]    --> src/controller.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 158 | impl Controller {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn is_connected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `shutdown` and `join` are never read
[INFO] [stdout]   --> src/pet_worker.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct PetHandle {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 24 |     rx: Receiver<PettingEvent>,
[INFO] [stdout] 25 |     shutdown: Arc<AtomicBool>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     join: Option<JoinHandle<()>>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shutdown` is never used
[INFO] [stdout]   --> src/pet_worker.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl PetHandle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn shutdown(mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_report_iteration` is assigned to, but never used
[INFO] [stdout]     --> src/main.rs:3689:13
[INFO] [stdout]      |
[INFO] [stdout] 3689 |         let mut last_report_iteration: u64 = 0;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_last_report_iteration` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_report_iteration` is never read
[INFO] [stdout]     --> src/main.rs:3840:17
[INFO] [stdout]      |
[INFO] [stdout] 3840 |                 last_report_iteration = iteration;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_i2c_dev` is never used
[INFO] [stdout]   --> src/imu.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn env_i2c_dev() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quat_rotate_vec` is never used
[INFO] [stdout]   --> src/imu.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn quat_rotate_vec(quat: [f64; 4], vec: [f64; 3]) -> [f64; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_default_with_mode`, `new_default`, `get_calibration_status`, `save_calibration`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]    --> src/imu.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl ImuController {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn new_default_with_mode(use_projected_gravity: bool) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn get_calibration_status(&mut self) -> Result<(u8, u8, u8, u8)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn save_calibration(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `DEFAULT_ADDRESS`, `new_default`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]    --> src/imu.rs:763:15
[INFO] [stdout]     |
[INFO] [stdout] 762 | impl Bno08xController {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 763 |     pub const DEFAULT_ADDRESS: u8 = 0x4A;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 766 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 805 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 811 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_default`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]    --> src/imu.rs:878:12
[INFO] [stdout]     |
[INFO] [stdout] 869 | impl Bmi088Controller {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 878 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 912 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 917 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_default`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:999:12
[INFO] [stdout]      |
[INFO] [stdout]  986 | impl Lsm6ds3trController {
[INFO] [stdout]      | ------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  999 |     pub fn new_default() -> Result<Self> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1033 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1038 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMU_DXL_DEFAULT_ID` is never used
[INFO] [stdout]     --> src/imu.rs:1092:11
[INFO] [stdout]      |
[INFO] [stdout] 1092 | pub const IMU_DXL_DEFAULT_ID: u8 = 200;
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMU_DXL_DEFAULT_BAUD` is never used
[INFO] [stdout]     --> src/imu.rs:1093:11
[INFO] [stdout]      |
[INFO] [stdout] 1093 | pub const IMU_DXL_DEFAULT_BAUD: u32 = 1_000_000;
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_gravity_offset` and `raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:1235:12
[INFO] [stdout]      |
[INFO] [stdout] 1140 | impl DxlImuFusion {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1235 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1240 |     pub fn raw_accelerometer(&self, raw: &[u8; 12]) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default_remap`, `new`, `new_with_remap`, `get_gravity_offset`, and `read_raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:1357:12
[INFO] [stdout]      |
[INFO] [stdout] 1356 | impl Lsm6ds3trDxlController {
[INFO] [stdout]      | --------------------------- associated items in this implementation
[INFO] [stdout] 1357 |     pub fn default_remap() -> lsm6ds3tr::AxisRemap {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1362 |     pub fn new(port: &str, baud: u32, id: u8) -> Result<Self> {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1366 |     pub fn new_with_remap(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1416 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1421 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Lsm6ds3trDxl` is never constructed
[INFO] [stdout]     --> src/imu.rs:1435:5
[INFO] [stdout]      |
[INFO] [stdout] 1430 | pub enum AnyImuController {
[INFO] [stdout]      |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 1435 |     Lsm6ds3trDxl(Lsm6ds3trDxlController),
[INFO] [stdout]      |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_gravity_offset` and `read_raw_accelerometer` are never used
[INFO] [stdout]     --> src/imu.rs:1459:12
[INFO] [stdout]      |
[INFO] [stdout] 1438 | impl AnyImuController {
[INFO] [stdout]      | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1459 |     pub fn get_gravity_offset(&self) -> [f64; 3] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1471 |     pub fn read_raw_accelerometer(&mut self) -> Result<[f64; 3]> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_known` and `estimate` are never used
[INFO] [stdout]    --> src/maploc.rs:280:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl Maploc {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn reset_known(&mut self, x: f32, y: f32, yaw: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 777 |     pub fn estimate(&self) -> (f32, f32, f32) { self.tracked }
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `join` is never read
[INFO] [stdout]   --> src/imu_worker.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ImuHandle {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 28 |     shared: Arc<Shared>,
[INFO] [stdout] 29 |     join:   Option<JoinHandle<()>>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shutdown` is never used
[INFO] [stdout]   --> src/imu_worker.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl ImuHandle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn shutdown(mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MIN_ANGLE` is never used
[INFO] [stdout]   --> src/motor.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const MOUTH_MIN_ANGLE: f64 = -10.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MAX_ANGLE` is never used
[INFO] [stdout]   --> src/motor.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const MOUTH_MAX_ANGLE: f64 =  70.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MIN_ANGLE_V1_5` is never used
[INFO] [stdout]   --> src/motor.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const MOUTH_MIN_ANGLE_V1_5: f64 = -0.5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MAX_ANGLE_V1_5` is never used
[INFO] [stdout]   --> src/motor.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const MOUTH_MAX_ANGLE_V1_5: f64 = -1.4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MIN_ANGLE_V1_6` is never used
[INFO] [stdout]   --> src/motor.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const MOUTH_MIN_ANGLE_V1_6: f64 = -5.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOUTH_MAX_ANGLE_V1_6` is never used
[INFO] [stdout]   --> src/motor.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const MOUTH_MAX_ANGLE_V1_6: f64 = 30.0 * std::f64::consts::PI / 180.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V1_5_DEFAULT_POSITION` is never used
[INFO] [stdout]    --> src/motor.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub const V1_5_DEFAULT_POSITION: [f64; NUM_MOTORS] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRE_ALPHA_DEFAULT_POSITION` is never used
[INFO] [stdout]    --> src/motor.rs:149:11
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub const PRE_ALPHA_DEFAULT_POSITION: [f64; NUM_MOTORS] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `last_imu_raw`, `poll_imu`, `interpolate_to_default`, and `reboot_all` are never used
[INFO] [stdout]    --> src/motor.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 239 | impl MotorController {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn last_imu_raw(&self) -> [u8; 12] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn poll_imu(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 597 |     pub fn interpolate_to_default(&mut self, duration: Duration) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 718 |     pub fn reboot_all(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_mut_slice` is never used
[INFO] [stdout]    --> src/observation.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl Observation {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn as_mut_slice(&mut self) -> &mut [f32] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `roulade_refs`, `infer_roulade`, and `has_fold` are never used
[INFO] [stdout]    --> src/policy.rs:230:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl Policy {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn roulade_refs(&self) -> &RoulaideRefs { &self.roulade_refs }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn infer_roulade(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn has_fold(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUTTONS` is never used
[INFO] [stdout]   --> src/controller.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const BUTTONS: &[(&str, &str)] = &[
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AXES` is never used
[INFO] [stdout]   --> src/controller.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const AXES: &[(&str, &str)] = &[
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]    --> src/controller.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl ControllerMapping {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_connected` is never used
[INFO] [stdout]    --> src/controller.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 158 | impl Controller {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn is_connected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `shutdown` and `join` are never read
[INFO] [stdout]   --> src/pet_worker.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct PetHandle {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 24 |     rx: Receiver<PettingEvent>,
[INFO] [stdout] 25 |     shutdown: Arc<AtomicBool>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     join: Option<JoinHandle<()>>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shutdown` is never used
[INFO] [stdout]   --> src/pet_worker.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl PetHandle {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn shutdown(mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 55.87s
[INFO] running `Command { std: "docker" "inspect" "6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4", kill_on_drop: false }`
[INFO] [stdout] 6b7750719f83d0fd69f6e6d8041563d431d3555adf5083c7949c5a247894c5d4
